<?php
/**
 * Created by PhpStorm.
 * UsersF: Mloong
 * Date: 2019/1/8
 * Time: 15:48
 */

namespace Filedemo;

class EachFile
{
    # 定义一个全局变量用于存储遍历文件的名字
    private $arr = array();

    /**
     * 使用递归的方式读取文件夹下面的所有文件名
     * @param $dir
     * @return array 储存的全部文件名的数组
     */
    public function file($dir)
    {
        if(is_dir($dir) == false){
            return array([
                'msg' => '参数必须是可以打开的路径'
            ]);
        }
        $list = scandir($dir);
        $this->each($list, $dir);
        # 清除缓存
        clearstatcache();
        return $this->arr;
    }

    private function each($list, $dir)
    {
        foreach ($list as $value) {
            if ($value === '.' || $value === '..') {continue;}
            $file = $dir.$value;
            if(is_file($file)){
                array_push($this->arr, $file);
            }else{
                $this->file($file.'/');
            }
        }
    }
}